Data binding
Po vytvoření rozhraní aplikace je potřeba zobrazit data aplikace. To se dá udělat pomocí kódu umístěného do těla metody. Tato metoda se pak volá z konstruktoru nebo z obslužné rutiny události. Načte potřebná data a umístí je do příslušných elementů. To je dostačující pro jednoduché aplikace, ale ne pro složité. Při vývoji aplikace je někdy nutné vyměnit rozhraní aplikace. Což znamená přepsat některé z metod načítajících data. Způsob načtení dat ze zdroje se třeba nezmění, ale způsob zobrazení dat ano. Může také dojít ke změnám v názvech elementů. V každém případě bude muset programátor tento kód opravit.
Pomocí data bindingu je možné přesunout načítání dat přímo do rozhraní aplikace. V XAML se vytvoří vazba mezi zdrojem a cílem dat. Odkud se data načtou, záleží na tom, jak je aplikace navržena. Data binding dovoluje získat data z vlastností objektů. Ty pak mohou být předány některému z atributů elementu.
Důležitá je i synchronizace mezi zobrazením dat a zdrojem těchto dat. Pokud se změní zdrojová data, je důležité, aby se změna promítla i do zobrazení. Někdy je také potřeba změnit přidružená data přímo v elementu, jež je zobrazuje. Tak, aby se automaticky upravená data v elementu promítla i do zdroje dat.
Data binding řeší většinu problémů spojených s načítáním dat do rozhraní aplikace. Vytvoří spoj mezi zdrojem a cílem dat. Vlastnosti tohoto spoje jsou uloženy v jediném objektu. Tento objekt je vytvořen jako instance třídy Binding.
Změna velikosti písma bez data bindingu
<TextBlock x:Name="textBlock" Canvas.Left="47"
Canvas.Top="66"
Height="80" Width="275"
Text="TextBlock"
FontSize="12"/>
<Slider Canvas.Left="47" Canvas.Top="23" Width="191"
Minimum="12" Maximum="65"
ValueChanged="Slider_ValueChanged"/>
private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
textBlock.FontSize = e.NewValue;
}
Změna velikosti písma s data bindingem
<TextBlock Canvas.Left="47"
Canvas.Top="66"
Height="80" Width="275"
Text="TextBlock"
FontSize="{Binding ElementName=fontSizeSlider, Path=Value}"/>
<Slider x:Name="fontSizeSlider" Canvas.Left="47" Canvas.Top="23" Width="191" Minimum="12" Maximum="65"/>
Na Obrázku 1 je ukázka rozhrání z předcházejících dvou příkladů. Změnou polohy posuvníku se změní i velikost písma.
Obrázek 1 Ukázka z úvodní aplikace data bindingu [zdroj: vlastní]